home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / virus / avaiii.lha / Xoper / Xoper Doc / Xoper Doc
Text File  |  1989-12-30  |  19KB  |  523 lines

  1.                  Xoper V2.0
  2.  
  3.             Copyright (c) Werner Gunther 1989
  4.  
  5. Xoper is a freeware program to display and to control system activity.
  6. Permition is granted to freely distribute this program.
  7.  
  8. --------------------------------------------------------------------------
  9. Changes in V1.2:
  10. New commands: Snoop, Capture, ClrCool, ClrWarm, ClrCold.
  11. Added        : CPU usage by task.
  12.  
  13. Cancel command has been rewritten, some minor bugs removed.
  14. ---------------------------------------------------------------------------
  15. Changes in V1.3:
  16. New commands: [S]=Stack usage, Sort, Hide, Hidden, Header, Window,
  17.           InputHandler.
  18. Added        : Support of startup-scripts, I/O Interrupts/second, 'Kill' an
  19.           alias for 'Cancel'.
  20. Some BIG bugs have been removed: The port-display used to GURU if more than
  21. 32 Ports did exist. The Cli Xoper has been started did act like having a
  22. priority of 128. Unlock didn't unlock sometimes, the interrupt/priority
  23. field did contain rubbish, Currentdir didn't examine all Processes.
  24. There were some more, minor bugs, all (hopefully) removed.
  25. ---------------------------------------------------------------------------
  26. Changes in V1.3b:
  27. New commands: [C] information on CLI-Tasks.
  28. Added        : 'Time 0' stops any update, System-Requesters are now handeled
  29.           correctly (affects 'Kill' and 'Closewindow').
  30. ---------------------------------------------------------------------------
  31. Changes in V2.0:
  32. The 'user interface' (what user interface ?) has been rewritten from
  33. scratch, and a small iconify routine has been added. To customize the whole
  34. thing a little bit, there are a few new commands:
  35.  MinimumChars, HistoryLines, ShowHistory, KillHistory, OutputLines,
  36. IconifyOff, BackDropIcon, UseScreen, UseWindow.
  37. Other new commands include:
  38. TimerIO, RemResident, Repeat, TrapGuru, Setfont, DiskChange, Alias,
  39. SaveOutput.
  40. Addresses are now shown as 32-Bit values for 68020 compatibility. The 'More'
  41. command is obsolete and has been removed. The 'interrupt list' has two new
  42. fields. 'Time' w/o parameters shows current setting. 'display commands'
  43. separated by blanks will display the lists one by one, instead of
  44. displaying them all at once.
  45. ---------------------------------------------------------------------------
  46. Starting Xoper from CLI:
  47.  
  48. Xoper [T] [F] [S] [L] [D] [R] [E] [M] [P] [I] [C]
  49.  
  50. These parameters are described below. For all those who like long
  51. Startup-Sequences, overcrowded memory and hot-keys enter
  52.  
  53. Xoper -b
  54.  
  55. This will install Xoper in background waiting for LeftAmiga-RightAmiga-X
  56. to pop up. In both cases you don't have to RUN or RUNBACK Xoper, it will
  57. always create its own process.
  58.  
  59. At startup Xoper loads and executes a file named S:Xoper.Startup if such a
  60. file is available. This startup-script is used to set default values, the
  61. window size or the initial default list to be displayed. The Xoper-window
  62. will only be opened after the startup-script has been processed. Look at the
  63. end of the document for a sample startup file.
  64.  
  65. Xoper Window:
  66. -------------
  67.  The window (or screen if you request one) is devided into two sections: a
  68. very small input line on the bottom and a large output area on the top. If
  69. the output exceeds the size of the window you may scroll or 'page' through
  70. the text using the num-pad keys:
  71.  
  72. A1000  A2000/A500
  73.   7    Home        Top of display
  74.   1    End        Bottom
  75.   9    Pg Up        one page up
  76.   3    Pg Dn        one page down
  77.   8    Up Arrow    one line up
  78.   2    Down Arrow    one line down
  79.   4    Left Arrow    one page left
  80.   6    Right Arrow    one page right
  81.  
  82.  The input section has some line editing facilities and a history buffer
  83. contollable with the following keys (similar to NewCon and ConMan):
  84.  
  85. Cursor left        cursor one character left
  86. Shift  left        cursor to the start of the next word
  87. Cursor right        one character right
  88. Shift  right        previous word
  89. Cursor Up        previous line in history buffer
  90. Shift  Up        top of buffer
  91. Cursor Down        next line in history buffer
  92. Shift  Down        bottom of buffer
  93. DEL            DEL
  94. BS            backspace
  95. Ctrl   X        delete line
  96. Ctrl   Y        delete EOL
  97. Ins   (numpad '0')      toggles insert mode (default is 'on')
  98. Del   (numpad '.')      same as DEL
  99.  
  100. ESC            moves the input area from the bottom into the
  101.             output section. Entering a command here (i.e
  102.             overwiting an output line), will cause Xoper to add
  103.             the address of that node to your command line.
  104.             Example: Show the hunks of a 'File.System' process:
  105.             type 'T' to get a list of all tasks, press <esc>,
  106.             move the cursor to the line displaying the
  107.             File.System process and type 'Hunks <enter>'. Press
  108.             <enter> once more to return to the usual Xoper
  109.             display.
  110. Help            displays a help panel.
  111.  
  112. The Xoper window has, beside the usual closewindow and depth-arrange
  113. gadgets, a custom gadget on its title bar, used to iconify Xoper. The icon
  114. may be moved anywhere on the screen just by dragging it, double clicking
  115. the icon will restart the program. The window itself is a simple_refresh
  116. window, so it may look a little bit sluggish when it needs a refresh.
  117.  
  118. Xoper Commands:
  119. ---------------
  120.  
  121.  Commands are entered in the command line at the bottom of the window,
  122. these are divided into two groups:
  123.  
  124. Display commands: These are always single character entries and may be
  125. specified in any order, upper or lower case, after the prompt or from CLI
  126. as parameters. If more than one list has to be displayed, you may enter
  127. several commands in one line. Separating them with blanks display the lists
  128. one by one instead of showing them all at once.
  129.  
  130. T = Tasks (Default if Xoper is called without parameters)
  131. Task node (HEX), Display type, status, priority (decimal), CPU usage
  132. (percent), processnumber for Dos-Processes (decimal), taskname.
  133.  
  134. F = Task Flags
  135. Task node (HEX), Allocated Signals (HEX), Signals the Task is waiting for
  136. (HEX), Signals received (HEX), Address of the next instruction to be
  137. executed (HEX).
  138.  
  139. C = Cli Commands
  140. Task node (HEX), Type (interactive/batch), Mode (Background/Foreground),
  141. CLI number, CLI name, program it executes.
  142.  
  143. L = Libraries
  144. Base address (HEX), open count (decimal), version (decimal), revision
  145. (decimal), flags (binary), libraryname.
  146.  
  147. D = Devices
  148. Base address (HEX), open count (decimal), version (decimal), revision
  149. (decimal), flags (binary), devicename.
  150.  
  151. E = Resident (sorry)
  152. Base address (HEX), priority (decimal), flags (binary), version
  153. (decimal), type, name.
  154.  
  155. R = Resources
  156. Base address (HEX), open count (decimal), version (decimal), revision
  157. (decimal), flags (binary), resource name.
  158.  
  159. M = Memory
  160. Lower and upper bounds (HEX), bytes free (decimal), attributes, priority
  161. (decimal), hunk name.
  162.  
  163. P = Ports
  164. Node address (HEX), portname, flags, signal bit (decimal), queue length
  165. [number of messages] (decimal), taskname.
  166.  
  167. I = Interrupts
  168. Node address (HEX), pointer to interrupt data (HEX), pointer to interrupt
  169. code (HEX), priority (decimal),[T]ype ([S]erver/[H]andler), [S]tate
  170. ([E]nabled/[D]isabled), type (interrupt queue the interrupt belongs to),
  171. interrupt name.
  172.  
  173. S = Stack
  174. Lower limit of the stack, stack size, currently used stacksize, taskname.
  175. If you want to minimize your stack using this utility, please note that
  176. DOS-functions use 1500 Bytes at the bottom of the Stack frame for their own
  177. purposes and note that the stacksize is only checked one time per second by
  178. this command.
  179.  
  180. H = Help ( or ?)
  181. Show a list of commands.
  182.  
  183. ; = NOP
  184. Skip this line (used for remarks in a script file)
  185.  
  186. Q = Quit
  187. Same as QUIT (see below).
  188.  
  189. Example: Entering TPM would display Tasks, Ports and Memory. The display
  190. would be updated after a few seconds (5 by default, may be changed
  191. anytime, see below.)
  192.  
  193. Other commands that do not display EXEC lists:
  194. These commands may be entered upper or lower case. Parameters enclosed
  195. in '<>' must be, enclosed in '[]' may be specified. Names are usually
  196. entered as ascii strings, it can however happen that two or more nodes of
  197. the same name exist. On tasks you may specify the DOS-Processnumber to
  198. sort them out. If everything fails, you can enter the Node-Address with a
  199. leading '$'. This address will be checked first before the command is being
  200. executed. If the check fails, you'll get an error message or a warning or
  201. a prompt, depending on what went wrong. Names are always the last parameter
  202. to enter. This may seem strange, but it is the simplest way to get rid of
  203. embedded blanks.
  204.  
  205. Time <seconds>
  206. Set time between updates. Minimum is 1 second, maximum is 255, default is 5
  207. seconds. Time 0 stops automatic update and waits for a kepress.
  208. Example: Time 1
  209.  
  210. Taskpri <priority> [processnumber] <taskname>
  211. Change the priority of a task. Values may range from -127 to 127, better
  212. use values between -5 and 5.
  213. Example: Taskpri 1 New Cli
  214.  
  215. Mypri <priority>
  216. Shortcut for "Taskpri Xoper <priority>"
  217. Example: Mypri 2
  218.  
  219. Pri <priority> <nodename>
  220. Change the priority of any other node. This command does not work for Tasks.
  221. If the specified node has been found, the entire list the node belongs to
  222. will be resorted.
  223. Example: Pri 1 Chip Memory      (try to allocate memory in CHIP first)
  224.  
  225. Break [processnumber] <taskname>
  226. Set break signals. Useful for tasks running in background or from Workbench.
  227. Example: Break 3 New CLI
  228.  
  229. Hunks [processnumber] <processname>
  230. Show location, BCPL-Pointers and length of memory blocks the process uses.
  231. Example: Hunks RAM
  232.  
  233. Snoop [processnumber] <taskname>
  234. Track memory allocation/deallocation of a task. Press break (CTRL-C) to
  235. stop. List includes: action (alloc/free), memory requirements (CHIP/ FAST/
  236. PUBLIC etc), memory size, memory location (start, end) and the address from
  237. where AllocMem() was called.
  238.  
  239. Files
  240. List lock, access, size and name of open files.
  241.  
  242. Locks
  243. List any lock.
  244. BUG: Trying to lock the Volume "RAM Disk" crashes the machine sometimes. If
  245. a Volume "RAM Disk" is found it will be replaced by the devicename "RAM:"
  246. (this has been fixed on WB 1.3). Make sure you don't have a disk labeled
  247. "RAM Disk" or you'll never see its locks:-)
  248.  
  249. Currentdir
  250. List current directory settings of all processes.
  251.  
  252. Devices
  253. List name,heads,sectors,tracks,startup-buffers and handler-process of every
  254. DOS-device.
  255.  
  256. Inputhandler
  257. Display node, priority and name (if any) of the input-handlers currently in
  258. use.
  259.  
  260. Capture
  261. Show vectors controlling the reset, i.e. CoolCapture, ColdCapture and
  262. WarmCapture pointers, KickMem allocations. Useful when searching
  263. for Viruses, but remember that the RAD: device in 1.3 uses the KickMem
  264. pointer to recover from a reset.
  265.  
  266. ClrCool
  267. ClrCold
  268. ClrWarm
  269. Clear one of those pointers.
  270.  
  271. TimerIO
  272. Display pending timer requests. It shows the address of the
  273. IORequest-structure, the unit (MICROHZ or VBLANK), the time to complete (up
  274. to 255 secs) and the task submitting the request.
  275.  
  276. RemResident <resident module name>
  277. Kicks the resident module out of the ResModules-List. It does not free the
  278. module itself, but only makes sure it won't be reactivated during the next
  279. reset. Removing a ROM-based module does not have any effect.
  280.  
  281. Repeat <Command string>
  282. Repeats the command string at the current refresh rate (see 'Time').
  283. However, commands not producing any output won't be repeated, but only
  284. executed once. Press <enter> to stop.
  285. Example: Time 1
  286.      Repeat TimerIO
  287.  
  288. TrapGuru
  289. Activates a trap handler similar to GOMF. It only works with a 68000
  290. processor, as it relys on a specified stack frame (at least I think so,
  291. couldn't check it out). If an exeption occurs (i.e. GURU) Xoper will
  292. stop (or popup, if running in background) and display some information
  293. about what happened (the taskname causing the error, its program counter,
  294. the alert number etc.) and you'll be asked if you want to (K)ill the task
  295. or (I)gnore the exeption. Choosing (i)gnore will do nothing at all if the
  296. erroneous program was a process (as it will stop itself displaying a
  297. 'Task held...' requester), but force a task to execute a 'Wait(0L)' (i.e.
  298. wait forever) as tasks do directly display an alert box.
  299.  
  300. Alias <AliasName> <CommandName>
  301. Defines a new name to be used along with the original command name. The new
  302. name should not contain any blanks.
  303. Example: Alias ih InputHandler
  304.  
  305. Lockdrive <drivename:>
  306. Prevent DOS, Workbench and Disk-Validator from cluttering on the drive.
  307. This command isn't very useful, but I needed it myself. Please note that
  308. the drivename is case sensitive and has to end with a ':'.
  309.  
  310. Freedrive <drivename:>
  311. Re-enable a drive.
  312.  
  313. DiskChange
  314. Show all installed diskchange interrupts. It displays the node, data and
  315. code fields of the interrupt, the device it is attached to (df0:-df3:) and
  316. the task which added the interrupt (if available). The main purpose for
  317. this command is to check for a virus, as the diskchange interrupt is a
  318. wonderful place to install them.
  319.  
  320. Windows
  321. List address and title of all windows.
  322.  
  323. Screens
  324. List address and title of screens.
  325.  
  326. Fonts
  327. List address,height,width,type,fist character and last character of all
  328. loaded fonts.
  329.  
  330. Windowfonts
  331. List Windows and associated fonts.
  332.  
  333. SetFont [size] <fontname> <window>
  334. Change the default font of a window. To avoid confusion, you should use a
  335. font with the same font size as the original font, as many programs rely on
  336. the point size.
  337. Example: Windows
  338.      Press <esc>, move the cursor to the Xoper window line and type
  339.      Setfont diamond.font
  340.      (now you know what I mean by 'relying on a font size' :-))
  341.  
  342. Freeze [processnumber] <taskname>
  343. Halt a Task. The task should be READY or WAITING. Frozen tasks are queued in
  344. a new list called FROZEN. When you leave Xoper, halted Task will be
  345. released.
  346. Example: Freeze Killer Graphics Task
  347.  
  348. Warm [processnum] <taskname>
  349. Restart a halted Task. Task must be FROZEN.
  350. Example: Warm Killer Graphics Task
  351.  
  352. Hide <taskname>
  353. The task-list tend to be longer than the window size. You may inhibit the
  354. output of some tasks you are not interested in using his command.
  355. Example: Hide trackdisk.device
  356.  
  357. Hidden
  358. Turn those hidden Tasks back on. It is actually a toggle.
  359.  
  360. Header
  361. Toggle the (rather long) header on the task display on/off.
  362.  
  363. Sort
  364. The tasks listing is sorted (on V1.3 and above) to avoid 'jumping' of the
  365. display. Sort toggles this feature on/off. (Stupid command, but was easy
  366. to implement).
  367.  
  368. Info <librarynode | devicenode>
  369. Show additional information stored in the lib_IdString field.
  370. Example: Info arp.library
  371.  
  372. Openlib <libraryname>
  373. Open a library. This is useful if you don't want a specified library being
  374. 'flushed' out.
  375. Example: Openlib arp.library
  376.  
  377. Clear [longword]
  378. Fill unused memory chunks with pattern, default is 0. Handy for debuggers.
  379. Example: Clear $66726565
  380.  
  381. Flush
  382. Clean up memory, flush unused libraries, devices and fonts.
  383.  
  384. Lastalert
  385. Show last Guru Meditation code or rubbish.
  386.  
  387. Usage
  388. Toggle CPUSE field on the task display between usage relative to all
  389. possible dispatches and usage relative to actually dispatched tasks.
  390. Ahem...not very clear I think. Well, let me try again...
  391. If you add all CPUSE fields together you get 100 % (more or less 1%). After
  392. entering "Usage" adding the fields together will give you the same value as
  393. shown in the 'CPU Activity field'. (I HATE having to write docs)
  394.  
  395. Taskports
  396. Disable / enable a listing of taskports if ports are displayed.
  397.  
  398. Window <leftedge> [toptedge [width [height]]]
  399. Works only on script files. Defines the window to be opened.
  400. Example: Window 0 0 550 190
  401.  
  402. HistoryLines <number of lines>
  403. Set the maximum number of input lines the history buffer should hold.
  404. Default is 10 lines.
  405.  
  406. MinimumChars <number of characters>
  407. Set the minimum number of characters an inputline should have to be added to
  408. the history buffer.
  409. Default is 2 characters.
  410.  
  411. ShowHistory
  412. Show the history buffer. (quite useless, I know)
  413.  
  414. KillHistory
  415. Delete all lines from the history buffer. (still useless)
  416.  
  417. OutputLines <number of lines>
  418. Set the maximum number of lines the output buffer may hold. If the buffer
  419. overflows, a line from the top of the buffer will be deleted for each new
  420. line.
  421. The default value is 500, using a maximum of 500 * 104 = 52000 bytes.
  422.  
  423. SaveOutput <filename>
  424. Write the contents of the output buffer to a file.
  425.  
  426. IconifyOff
  427. Turns the iconifying routine off, freeing all memory associated with its
  428. code and image.
  429.  
  430. BackDropIcon
  431. Puts the Xoper icon behind all other windows, instead of creating it on top
  432. of them.
  433.  
  434. UseScreen
  435. Opens Xoper on a screen. The new screen will take its data (width, colors,
  436. viewmodes etc.) from the Workbench screen and open a borderless backdrop
  437. window on it.
  438.  
  439. UseWindow
  440. Opens Xoper on a window.
  441.  
  442. Quit or just Q
  443. Exit Xoper. If Xoper was started with '-b' or if 'Hold' was specified it
  444. will stay in background waiting for LeftAmiga-RightAmiga-X.
  445.  
  446. Hold
  447. Exit Xoper but install a key-handler and stay in background. Window
  448. settings and display commands are saved.
  449.  
  450. Exit
  451. Clean up and quit.
  452.  
  453. !!!! WARNING: The next few commands are dangerous and 'dirty' !!!!!
  454. !!!!!!!!!!!! don't use them if not strictly necessary !!!!!!!!!!!!!
  455.  
  456. Kill [processnumber] <taskname>
  457. Kill a task or a process. If the task has been called from CLI, the Task
  458. itself and the CLI will be killed. Hunks, Windows, Screens  and the
  459. teminal-window will be freed. Simple tasks are just RemTask()'ed. If it is
  460. not a CLI Task you'll be asked if it is a Workbench task, if the answer is
  461. 'Yes' unloading will be done by the Workbench. If not, you will be prompted
  462. if Xoper should unload the code. Enter 'No' if you don't know how the task
  463. has been started.
  464.  
  465. Closewindow <title>
  466. Closes a Window. Please, use it only if the corresponding Task has been
  467. 'Cancel'ed. Use the Window-Structure address if the window has no name.
  468.  
  469. Closescreen <title>
  470. same as above, but for screens.
  471.  
  472. Unlock <lock (BPTR)>
  473. Unlock a file.
  474.  
  475. Closelib <libraryname>
  476. This is exactly the same as CloseLibrary().
  477.  
  478. CD [processnumber] <processname>
  479. Change the current directory of a process. You are prompted if the old
  480. directory lock should be unlocked.
  481.  
  482. Signal <mask> [processnumber] <taskname>
  483. Set any task-signal. Mask is a hexadecimal value with or w/o leading '$'.
  484. See task's SIGWAIT field for sensible values. Tasks normaly do not wait for
  485. signals only, but for messages, that's why this command may not have the
  486. desired effect, but it is quite useful for tasks hanging around and waiting
  487. for events that may never happen. Warning: Using Signal without any
  488. knowledge about what you are going to signal may cause a system-crash!
  489. Example: Signal 10000000 PopCLI III
  490.  
  491. ----------------------------------------------------------------------------
  492. ;Sample Startup Script (to be placed in s:Xoper.Startup)
  493. ;
  494. ; Window definition on a overscanned + PAL Workbench screen
  495. Window 122 0 550 230
  496. ;
  497. ;don't display some Tasks
  498. ;
  499. Hide CON
  500. Hide trackdisk.device
  501. ;
  502. ;but turn them on on Startup
  503. ;
  504. Hidden
  505. ;
  506. ;Change the default list to Ports
  507. ;
  508. P
  509. ;don't display any prompt if the window is full
  510. More
  511. ----------------------------------------------------------------------------
  512. Please send flames, bug reports and especially a list of features you would
  513. like to have included in the next version to
  514.  
  515.  Werner Gunther
  516.  Wingertspfad 12
  517.  D 6900 Heidelberg
  518.  (Germany)
  519.  
  520. or to my EMAIL address for a fast response:
  521.  
  522.  G35@DHDURZ1.BITNET
  523.